package br.com.tcc.gp.controlador;

import java.util.ArrayList;
import java.util.List;

import br.com.tcc.gp.dao.AdvogadoDAO;
import br.com.tcc.gp.execoes.GestaoException;
import br.com.tcc.gp.modelo.Advogado;
import br.com.tcc.gp.modelo.Endereco;
import br.com.tcc.gp.modelo.Pessoa;

public class ControleAdvogado {
	
	AdvogadoDAO advogadoDAO;
	ControleEndereco controleEndereco;
	Advogado advogado;
	ControlePessoa controlePessoa;
	List<Advogado> lista;
	int linhas = 0;

	public ControleAdvogado(){
		advogadoDAO = new AdvogadoDAO();
		lista = new ArrayList<Advogado>();
		controlePessoa =  new ControlePessoa();
		controleEndereco = new ControleEndereco();
	}

	public int salvar(Advogado advogado, Endereco endereco){
		try {			
			linhas = controlePessoa.salvar(advogado, endereco);
			if(linhas != 0){
				Pessoa p = controlePessoa.pesquisar(advogado);
				linhas = advogadoDAO.salvar(advogado, p.getCodigo());
			}
		} catch (GestaoException e) {
			e.printStackTrace();
		}
		return linhas;
	}

	public Advogado pesquisar(String inscricao) {
		advogado = advogadoDAO.pesquisar(inscricao);
		
		if (advogado != null)
			return advogado;
		
		return null;
	}

	public int deletar(Advogado adv){
		linhas = advogadoDAO.deletar(adv);
		if(linhas > 0)
			linhas += controlePessoa.deletar(adv);
		return linhas;
	}
	
	public int alterar(Advogado adv, Endereco end) {
		linhas = advogadoDAO.alterar(adv);
		if (linhas > 0)
			linhas += controlePessoa.alterar(adv, end);
		return linhas;
	}
	
	public List<Advogado> lista(){
		lista = advogadoDAO.listar();
		return lista;		
	}
}